package com.jobs.producer0.config;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.FanoutExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FanoutConfiguration {

    @Bean     //创建FanoutExchange类型交换机 以下是两种方法 两个选择一个就行
    public FanoutExchange fanoutExchange(){
//        ExchangeBuilder.fanoutExchange("maxxub.fanout").build();   //使用Builder创建
        return new FanoutExchange("maxxub.fanout2"); //直接new一个交换机对象 参数：填写交换机名称
    }

    @Bean      //创建Queue类型队列  以下是两种方法 两个选择一个就行
    public Queue fanoutQueue3(){
//        QueueBuilder.durable("fanout.queue3").build();   //使用Builder创建
        return new Queue("fanout.queue3"); //直接new一个队列对象 参数：填写队列名称
    }

    @Bean  //进行队列和交换机绑定 使用绑定构建
    public Binding fanoutBinding3(Queue fanoutQueue3, FanoutExchange fanoutExchange){

        //直接看  BindingBuilder 就是 bind（绑定）fanoutQueue3队列 to（到） fanoutExchange交换机上
        return BindingBuilder.bind(fanoutQueue3).to(fanoutExchange);
    }


    @Bean
    public Queue fanoutQueue4(){
//        QueueBuilder.durable("fanout.queue4").build();
        return new Queue("fanout.queue4");
    }

    @Bean
    public Binding fanoutBinding4(){
        //可以直接调用方法
        return BindingBuilder.bind(fanoutQueue4()).to(fanoutExchange());
    }
}